home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Free 14
/
Commodore_Free_Issue_14_2007_Commodore_Computer_Club.d64
/
t.iv mcdougall
< prev
next >
Wrap
Text File
|
2023-02-26
|
15KB
|
495 lines
u
Interview with Mark McDougall
Mark C= FPGA 1541 project
http://members.iinet.net.au/{$de}msmcdoug/
Q - Can you introduce yourself to our
reader?
A - My name is Mark McDougall & live in
Sydney, Australia. I'm an electronics
design/computer software engineer who
was 1st bitten by the arcade emulation
bug around 1990. It has since snow-
balled into a full-blown hobby & now
encompasses classic 8-bit micro
computers & consoles as well as video
arcade machines.
Away from computers, these days I try
to keep fit by playing soccer pretty
much year-round sorry, _football_
(actually even us Aussies are dropping
"soccer" in favour of "football") &
going to the gym. And I'm definitely
*not* a morning person! ;)
Q - What was your first Computing
experience?
A - Somewhere in my 1st year of high
school, when I was 13, my father
purchased a 4K Level 1 TRS-80 Model I
for himself. Or so he thought. I still
recall that first day loading a version
of Backgammon off cassette tape, &
typing in BASIC listings from the user
manuals. To this day I swear I spent
more hours playing "Flying Saucers" &
"Time Trek" than any computer or
console game ever since!
Q - When did you come across the brand
name commodore?
A - The C64 wasn't so big here in
Australia - or at least in the circles
I moved, so it wasn't until I saw an
Amiga 1000 at a computer show that I
really took much notice of the C=
brand. By the time I had saved enough
to buy a C=, the 500 had been released,
so that was the first C= that I owned.
Of course I still own it!
Q - Many people outside C= ask why
bother writing & creating software for
out of date machines would you like to
comment.
A - For me it's primarily a nostalgia
thing. I recall those TRS-80 days very
fondly, & I guess part of me gets to
relive those days whenever I'm working
with or playing on the old machines. I
also find that my attention span has
shortened appreciably over the years, &
as impressed as I am with some of the
modern games, I find they require too
much of my already limited spare time &
concentration to get into them
properly.
So the arcade games & classic computer
games are more appealing to me - you
can pick up a controller & start
blasting away & (in my case at least)
it's "GAME OVER" a few minutes later.
And of course as every retro enthusiast
will tell you, it was always about
gameplay back then!
It's also a joy to discover software, &
machines, that I didn't get to
experience all those years ago. The C64
is a prime example - until a few months
ago I had quite literally never played
one - & having read some 30+ issues of
"RetroGamer" magazine, games like Lode
Runner & Wizball were the 1st disk
images I tracked down when we decided
to develop the 1541 emulation.
If you never experienced those
days personally, I get that you
don't get it! However I am
surprised that some of the retro
enthusiasts popping up over
usenet etc these days are
actually too young to have been
there - it's good to see!
Q - Can you tell our readers about your
FPGA 1541 project?
A - The FPGA 1541 project is an
offshoot from our "PACE" project,
which has grown in scope to
encompass pretty much anything
related to the emulation &/or
enhancement of classic arcade
machines, microcomputers &
consoles.
The idea of the FPGA 1541 project
is to emulate the 1541 faithfully
in hardware, rather than provide
a device that connects to a C64
and appears to behave like a 1541
drive, but doesn't actually
operate internally like a 1541.
So inside an FPGA, we emulate the
6502 & 6522s so it runs the
original DOS ROM code. We can
then emulate the physical drive
mechanism in whatever manner we
choose - Compact Flash, SD/MMC
card, etc - to create a device
that can be physically attached
to a real C64 & operate exactly
like a 1541 but with a lot more
storage than a single floppy disk.
We (my co-conspirator Chris & I) did
know of various similar projects that
emulated floppy disk storage devices on
the C64, but none - as we understood
that directly emulated the hardware of
a 1541. Aside from just being fun, we
thought it more likely that we'd be
able to provide a device more
compatible with fastloaders etc if we
did it this way. We also wanted a
single solution that we could connect
to either a real C64 or to say,
FPGA64, inside the same chip.
Q - on your website you state
"13-Aug-2007 The 1541 emulation is now
reading the G64 image off Compact
Flash" how far is there to go with the
project?
We have an operational (read only) 1541
running on various FPGA development
boards that operates with both Compact
Flash & SD card. At the moment the
emulation is partly implemented
within a 'soft-core' processor
within the FPGA, something we are
working at replacing so that the
hardware required is much simpler &
much cheaper - & hopefully bringing it
into the budget of more enthusiasts.
Q - Will you be trying to emulate other
drives, such as the 1581?
A - Most probably. If I understand
correctly, there's no real leap in
technology involved & we will be able
to base the higher capacity drives off
the 1541 emulation with moderate effort
Q - Will your emulation be able to cope
with software fastloaders & protection
schemes?
A - Well that was a big point of the
project. We initially started with D64
images, & generated G64 images
on-the-fly within the FPGA with code
lifted straight from MESS. As it stands
now, the emulation makes use of G64
images, albeit support is preliminary.
Although the complications of
protection schemes present their own
challenge - not only to the emulation
itself but also their encapsulation in
the representative disk format like
G64 - the emulation should be more
faithful than other efforts & hopefully
more compatible with fast loaders for
example.
Q - Will there be a finished product to
purchase or are you just designing the
software?
A - No final decision has been made,
but the thinking at this point is to
release the complete design for a read-
only version in the public domain, &
provide a commercial hardware product
that supports both reading & writing.
Q. How easy will it be to transfer
images to/from the device?
A - That is something we're
divided on at the moment. Ideally
the user could insert an SD card
in a PC & simply transfer
D64/G64 disk images to the card.
That complicates the design &
adds cost to a product. The other
end of the spectrum is to provide
proprietary software to write
disk images to the SD card in a
custom format. And USB is also a
popular option these days...
Q - Maybe this is a dumb question but
How can the software be used & what can
it be used on?
A - The user would be able to LOAD as
many D64/G64 images as the SD card can
hold, & then plug the card into an
emulated 1541 that can be connected to
a real C64. There would be some user-
interface that would allow the user to
select which disk image is active, &
obviously from that point on, the C64
sees that disk in the drive. It may
also be possible to have the same
device emulate a number of floppy
drives simultaneously - but that could
affect the final cost.
Not knowing much about the C64 family,
I'm assuming it would be compatible (or
trivial to support compatibility) with
the various C= machines that supported
the 1541 & similar drives.
Q - Would you be able to link the PACE
up to a real C64 to act as a virtual
drive?
A - Definitely, as explained above - &
is something we have already done!
Q - Does the software work on the C-One
for example?
A - Whilst not intimately familiar with
the C-1, it is my understanding that
the C-1 architecture isn't quite
suitable for our project. The main FPGA
on the C-1 is completely full with
FPGA64 & the secondary FPGA is (IIUC) a
closed design that handles I/O & video
as well as bootstrapping the machine.
I'd be happy to be proven wrong on that
though.
Having said that, we have ported
Peter's FPGA64 project to our own FPGA
H/W & integrated our 1541 so that we
have our own version of 'C= on-a-chip'.
Q - Will the finished results be
available to download & will there be a
charge?
As I said earlier, I'd like to release
something back into the public domain -
a read-only design for example.
Q - What do you think of the other
advanced storage methods for the C64,
like the IDE64 interface or the MMC64
(which allows access to SD/MMC cards)?
A - To be honest, I don't know a great
deal about them, but from what I've
gleaned from reading about them, I
think they're great products in their
own right. Some also go beyond
emulating storage devices as well,
which is a plus.
I guess the main difference is that the
heart of the 1541 project is the aim to
faithfully emulate the architecture so
that it runs the standard DOS ROMs.
The upshot is that the design can also
be combined with FPGA64 inside a single
FPGA to give a single-chip solution.
Q - What does the project aim to do, I
notice you have links & references to
other C= FPGA projects are you working
together on a project?
A - Part of the problem with PACE is
that the scope is ever-expanding as my
interests in retro computers broadens.
So it's a very difficult question to
answer. And as technology advances it
becomes easier & cheaper to implement
things that were prohibitive only a few
years ago - add this to the mix & it's
very difficult to decide which aspect
of PACE to devote the time to.
I've justified my aforementioned short
attention span by proclaiming that PACE
is currently in the proof-of-concept
or 'prototype' phase. What this really
means is that I do enough to get a
particular emulation more-or-less
running, & can then move on to other
more interesting things without the
tedious tying-up of loose ends or
worrying about 101% compatibility.;)
More often than not immediate ideas are
spawned from FPGA projects released by
other authors, or even discussions on
the usenet newsgroups & mailing lists
that I frequent. For instance right now
we're waiting on prototype PCBs to come
back from fabrication that I designed
a few weeks ago to implement flash-
based multi-carts on the TRS-80 Coco
(a.k.a. Dragon 32) originally spawned
from a discussion on the Coco mailing
list about a small run of custom
EPROM-based carts.
The aim of the PACE project I
guess is to be to hardware what
MAME/MESS is to software. It'd be
great if ultimately people could
contribute to the project adding
not only new emulations, but
support for other FPGA hardware
like development kits. We're trying to
create a VHDL framework that speeds the
development of new emulations. Of
course we're *far* from achieving that
& just as MAME/MESS have done, there
will be regular re-architecting along
the way before it's even half right!
What we'd also _like_ to do,
ultimately, is to produce an
FPGA-based hardware platform that
is most suitable for the hardware
emulation of as wide a range as
possible of classic arcade,
console & microcomputer
platforms. The same hardware
could be plugged into a VGA
monitor & PS/2 keyboard, TV &
console game controller (we've
already done Gamecube & Maple
Bus (Dreamcast) interfaces), or
directly into a JAMMA arcade
cabinet. Not unlike the C-1 but
(with the benefit of hindsight
and advancing technology) more
flexible.
Q - Can you tell our reader about some
of the other projects referenced on
your website?
A - A few years ago, my colleague
Chris Nott & I spun our first
board for our PUCE (Programmable
Universal Cartridge Emulator)
which comprised three cartridge
connectors - NES, SNES & N64
connected to an FPGA. The idea
was to produce a flash-based
programmable cartridge that
allowed the user to transfer
cartridge images from any of
these 3 consoles onto the card
together with the mapper logic
so one could play *any* game on
the respective console.
We did have some success along
the way, most notably on the SNES
and N64, but ultimately due to
our inexperience the card was
simply too cumbersome to develop
for & (ironically) not quite
viable to emulate a NES cartridge.
Then we discovered that emulating
complete arcade machines & 8 bit
microcomputers in FPGAs was
considerably more fun than
emulating just the cartridges &
PACE (Programmable Arcade Circuit
Emulator) was born. To be fair we
lucked into some suitable
hardware for free & PUCE was
all-but-forgotten. Just the other
day, however, we did talk about
resurrecting the project, albeit
on new hardware.
The other cool project I was
quite proud of was my "Space
Invaders TRS-80 Bootleg" project,
which involved patching the
original Space Invaders ROM to
run on a TRS-80 Model 4P with
suitable hires hardware. It
involved reverse-engineering
pretty much every single
instruction in the Space Invaders
ROM code, which took a few weeks,
and then another few weeks of
developing the patches. I got it
running on my real Model 4P
despite the fact I had no working
disk drives - albeit at 50% - due
only to the fact that there isn't
a suitable 60Hz interrupt on the
4P. Still cool IMHO...
In closing: The two most frustrating
things for me are the lack of time to
devote to my hobby, & the fact that my
hobby now encompasses such a broad
range of platforms! Hardware
development is not only costly, but
also time-consuming, & there's so many
projects I'd like to tackle that are
simply out of the question for me for
the foreseeable future.
I'd love to be able to make a
living out of it, but I'm yet to
identify a segment of the market
that I believe is viable to
sustaining a steady income. So
for now, I do what interests &
challenges me, &/or projects
that may be of some interest to
at least a few others.
Perhaps of specific to your readers, of
late I've become more aware of
peripherals like the REU & Ethernet
cards for the C64, & am interested in
perusing designs for these. Another off
shoot is interfacing modern controllers
to old computers & consoles - I've
played Wizball on FPGA64 with a
Nintendo Wavebird, for example!
In the past I baulked at the effort in
producing PCBs but after recently
completing a few prototypes for the
Coco (flash carts) & Amiga (PS/2 mouse
adapter), I'm starting to think that it
makes more sense to produce a greater
variety of relatively simple boards
whilst PACE "matures". I think one
advantage both Chris & I have is that
we have both a broad range of interests
across the spectrum of retro gaming &,
though our work, a rather broad range
of skills to match - so with enough
different boards even a trickle of
sales of each may be enough to fund
development of more designs.
And thanks Nigel for taking interest in
my obsession! ;)
Regards,
Picture of Loadrunner Running from FPGA